<?php
if ( ! defined('BASEPATH')) exit('el acceso directo a esta página no esta permitido.');
class encuestas_model extends ci_model {
    
    public function __construct() {
        parent::__construct();
        $this->load->database();
    }
    
     public function getresponsables($parametros){
        $sql = "select iddispositivo as id, asignadoa as responsable from dispositivos where empresa = ?;";
        $resp = $this->db->query($sql, $parametros);
        return $resp;
    }

    public function getfechasestudio($idestudio){
        $sql = "select fechainicio, fechatermino from estudios where idestudio = ".$idestudio;
        $result = $this->db->query($sql);
        return $result->result();
    }


    public function getencuestas($parametros){
        $sql = "select idencuesta as id, estudio, nombre, b.asignadoa as responsable, fechainicio, fechatermino, a.activo 
                from encuesta as a
                left join  dispositivos as b
                on a.responsable = b.iddispositivo
                where estudio = ? and a.activo = 1";
        $resp = $this->db->query($sql, $parametros);
        return $resp;
    }
    
    public function get_estudios($idempresa){
        $this->db->select('idestudio as id,estudios.nombre as estudio,estudios.nombre as empresa,fechainicio as fechai,fechatermino as fechat,descripcion');
        $this->db->from('estudios');
        $this->db->join('empresas' ,'estudios.empresa = empresas.idempresa');
        $this->db->where('estudios.activo = 1 ');
        if ($idempresa != 0){
            $this->db->where('estudios.empresa ='.$idempresa);
        }
        $query=$this->db->get();
        $data['datos'] = $query->result_array();
        return $data;
    }

    public function agregar($parametros){
        $sql = "insert into estudios(nombre,empresa,fechainicio,fechatermino,descripcion,activo) values(?,?,?,?,?,?);";
        $result = $this->db->query($sql,$parametros);
        return $result;
    }

    public function modificar($parametros){
        $sql = "update estudios set nombre = ?, fechainicio = ?, fechatermino = ?, descripcion = ? where idestudio = ?;";
        $result = $this->db->query($sql,$parametros);
        return $result;
        }

    public function eliminar($parametros){
        $sql = "delete from estudios where idestudio = ?;";
        $this->db->query($sql,$parametros);
        return "estudio eliminado";
    }
    
    public function eliminar_encuesta($parametros){
        $sql = "delete from encuesta where idencuesta = ?;";
        $this->db->query($sql,$parametros);
        $result = array('rows'=>$this->db->affected_rows());
        return $result;
    }

    public function agregarencuesta($parametros){
        $sql = "insert into encuesta(estudio,nombre,responsable,fechainicio,fechatermino,activo) values(?,?,?,?,?,?);";
        $this->db->query($sql,$parametros);
        $result = array('rows'=>$this->db->affected_rows());
        return $result;
    }
    
    public function copiarencuesta($idencuesta,$nombrenuevo){
        $sql_encuesta="select * from encuesta where idencuesta = ".$idencuesta;
        $encuestas = $this->db->query($sql_encuesta);
        foreach($encuestas->result() as $row){
            $encuesta = array('estudio'=>$row->estudio,'nombre'=>$nombrenuevo,'responsable'=>$row->responsable,'fechainicio'=>$row->fechainicio,'fechatermino'=>$row->fechatermino,'activo'=>1);
            $this->db->insert('encuesta',$encuesta);
            $encuesta[idnuevo]=$this->db->insert_id();
        }
        
        $sql_subsecciones = "select subseccion.* from subseccion 
                                inner join pregunta on pregunta.subseccion = subseccion.idsubseccion
                                inner join seccion on pregunta.seccion = seccion.idseccion where seccion.encuesta = ".$idencuesta;
        $sql_secciones = "select * from seccion where encuesta = ".$idencuesta;
        $sql_preguntas = "select pregunta.* from pregunta inner join seccion on pregunta.seccion = seccion.idseccion where seccion.encuesta = ".$idencuesta;
        
        
        $secciones = $this->db->query($sql_secciones);
        
        foreach($secciones->result() as $row){
            $seccion = array('encuesta'=>$encuesta->idnuevo,'nombre'=>$row->nombre,'encabezado'=>$row->encabezado);
            $this->db->insert('seccion',$seccion);
            $seccion['idnuevo']=$this->db->insert_id();
        }
    }
    
    
    function getaplicaciones($idencuesta){
        $sql= "select aplicaciones.idaplicacion, estadoaplicacion.estado as estado, dispositivos.asignadoa as responsable, clientes.nombre as cliente, aplicaciones.fechaestimada as 'fechaestimada', 
                      aplicaciones.fechaaplicacion as 'fechaaplicacion', aplicaciones.tipovalidacion as 'tipo validacion', aplicaciones.latitudeap as 'latitude', aplicaciones.longitudeap as 'longitude' 
                from aplicaciones 
                    inner join clientes on clientes.idcliente = aplicaciones.clienteaplicacion
                    left join dispositivos on dispositivos.iddispositivo = aplicaciones.iddispositivo
                    inner join estadoaplicacion on estadoaplicacion.idestado = aplicaciones.estado
                where isnull(aplicaciones.idprevio) and aplicaciones.idencuesta = ".$idencuesta;
        $result = $this->db->query($sql);
        return $result->result();
    }
    
     public function insertarappunica(){
        $clientes=$this->input->post("clientes");
        $idencuesta=$this->input->post("idencuesta");
        $fechaapplicacion=$this->input->post("fechaaplicacion");
        foreach ($clientes as $value) {            
            $array=array(
                'idencuesta'=> $idencuesta,
                'clienteaplicacion'=> $value,
                'fechaestimada'=> $fechaapplicacion,
                'estado'=> 1                
            );
            $this->db->insert('aplicaciones',$array);             
        }               
        
    }
    
    
     public function executefunctiondb($encuesta,$cliente,$tipo,$dato,$fechai,$fechaf){   
         $sql = "select insertapp(".$encuesta.",".$cliente.",".$tipo.",".$dato.",'".$fechai."','".$fechaf."');";
        $result = $this->db->query($sql);
    }
    
    
    
     public function insertarappfrecuencia(){
        $clientes=$this->input->post("clientes");
        $idencuesta=$this->input->post("idencuesta");
        $fechai=$this->input->post("fechainicio");
        $fechaf=$this->input->post("fechatermino");
        $tipo=$this->input->post("group");
        $dato=0;
        $dias=$this->input->post("dias");
          foreach ($clientes as $value) {
              
             
                  if($tipo==1){
                    foreach ($dias as $dia) {
                      $this->executefunctiondb($idencuesta,$value,1,$dia,$fechai, $fechaf);
                    }
                  }else if($tipo==2) {
                    $dato=$this->input->post("numdias"); 
                    $this->executefunctiondb($idencuesta,$value,2,$dato,$fechai, $fechaf);                        
                  }else if($tipo==3) {
                    $dato=$this->input->post("nummeses");
                    $this->executefunctiondb($idencuesta,$value,3,$dato,$fechai, $fechaf);
                      
                  }else if($tipo==4) {
                    $dato=$this->input->post("diames");
                    $this->executefunctiondb($idencuesta,$value,4,$dato,$fechai, $fechaf);                       
                  }
              
              
          }
        
}


public function getreporterespuestas($idapp) {

        $sql = "select seccion.idseccion,seccion.encabezado as secciont,subseccion.encabezado as subsecciont,pregunta.* from aplicaciones 
         inner join 
          (encuesta inner join (pregunta left join subseccion on pregunta.subseccion=idsubseccion left join seccion on pregunta.seccion=idseccion) on seccion.encuesta=idencuesta)
         on encuesta.idencuesta=aplicaciones.idencuesta
         where idaplicacion = ".$idapp.";";

        $query = $this->db->query($sql);
        
        $data =$query->result_array();
        
        for($i=0;$i<count($data);$i++) {
            
            $sql = "select respuestas.*,opmultiple.texto,secuencia,otro from respuestas left join opmultiple on opmultiple.idopcion= respuestas.idopcion where respuestas.idaplicacion=".$idapp." and respuestas.idpregunta=".$data[$i]['idpregunta'].";";
            $query1 = $this->db->query($sql);        
            $data1 =$query1->result_array();
            $data[$i]['respuestas']=$data1;
            
            $sql = "select tipodato from validacion where idpregunta=".$data[$i]['idpregunta'].";";
            $query2 = $this->db->query($sql);        
            $data2 =$query2->row();
            $data[$i]['tipodato']=$data2->tipodato;            
        }
        
        
        return $data;
    }
    
    public function contar_apps($idenc){            
      //  $session_data = $this->session->userdata('logged_in');
        $this->db->select('count(*) as c'); 
        $this->db->from('aplicaciones');
    $this->db->where('idencuesta = '.$idenc.' and estado = 5 ');
    
    $query=$this->db->get();
        $data = $query->row();
        
        echo $data->c;
        return $data->c;
    }
    
    public function getconfiguracioninfo($idempresa){
        try {            
            $result= array();
            $sql = "select confreporte.*,empresas.nombre as empresa 
                   from confreporte
                     inner join empresas on confreporte.idempresa= empresas.idempresa 
                   where confreporte.idempresa=" . $idempresa . ";";

           $query2 = $this->db->query($sql);
           $result['datos1']=$query2->row(); 
            if($query2->num_rows()==0){
                $sql = "select empresas.nombre as empresa 
                    from empresas  
                    where empresas.idempresa=" . $idempresa . ";";
                $query3 = $this->db->query($sql);
                $data3 = $query3->row(); 
                $result["empresa"]=$data3->empresa; 
             }
           $result['img']=  base_url() ."uploads/". $result['datos1']->logo; 
        } catch (exception $exc) {
            return "dfdfdf";
        }
        return $result;
    }

}

/* end of file encuestas.php */
/* location: ./application/controllers/encuestas.php */